import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import { resolve } from 'path';

/**
 * Vite 配置文件
 * 用于构建 Electron 渲染进程的静态文件
 */
export default defineConfig({
  plugins: [
    react(),
    // 自定义插件：在构建时添加 CSP 头
    {
      name: 'add-csp',
      transformIndexHtml(html) {
        return html.replace(
          '<meta name="viewport" content="width=device-width, initial-scale=1.0" />',
          `<meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data: file:; font-src 'self' data:; connect-src 'self';" />`
        );
      }
    }
  ],
  
  // 基础路径配置 - 使用相对路径以支持 file:// 协议
  base: './',
  
  // 构建配置
  build: {
    outDir: 'dist',
    emptyOutDir: true,
    sourcemap: true,
    rollupOptions: {
      input: {
        main: resolve(__dirname, 'index.html')
      }
    }
  },
  
  // 开发服务器配置（虽然我们不使用，但保留以备后用）
  server: {
    port: 3000,
    strictPort: true
  },
  
  // 路径别名
  resolve: {
    alias: {
      '@': resolve(__dirname, 'src'),
      '@core': resolve(__dirname, '../core'),
      '@app': resolve(__dirname, '../app')
    }
  },
  
  // 环境变量
  define: {
    __DEV__: JSON.stringify(process.env.NODE_ENV === 'development')
  },
  
  // 优化配置
  optimizeDeps: {
    include: ['react', 'react-dom', 'react-router-dom']
  },
  
  // CSS 配置
  css: {
    modules: {
      localsConvention: 'camelCase'
    }
  }
});